Skip to content

feat(rules): add A10:2021 SSRF detection (#31) - #77

Merged
jeremyjs merged 1 commit into
mainfrom
opencode/crisp-canyon
Jun 7, 2026
Merged

feat(rules): add A10:2021 SSRF detection (#31)#77
jeremyjs merged 1 commit into
mainfrom
opencode/crisp-canyon

Conversation

@jeremyjs

@jeremyjs jeremyjs commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Implements native detection for OWASP A10:2021 — Server-Side Request Forgery (SSRF).

What's added

  • Rule: A10-SSRF in packages/cli/src/rules/a10-ssrf.ts
    • JavaScript/TypeScript: fetch(req.params.*), axios.get/post(req.*), http/https.get(req.*), request(req.*)
    • Python: requests.get/post(request.args...), urllib.request.urlopen(request.json()...)
  • Fixtures:
    • a10-ssrf.ts (JavaScript vulns)
    • a10-ssrf-vuln.py (Python vulns)
    • a10-ssrf-clean.ts (zero-finding control)
  • Tests: Updated native-rules.test.mjs with new fixture assertions
  • Docs: README coverage table updated to A10 (7/10 OWASP categories)

Verification

  • pnpm --filter @decoperations/owasp-wtf test31/31 passing
  • pnpm typecheck → clean
  • Determinism verified (identical fingerprint sets across sequential scans)

References

- New native rule A10-SSRF for JavaScript/TypeScript and Python
- Detects user-controlled URLs in fetch, axios, http/https.get, request
- Detects Python requests.get/post and urllib.request.urlopen with Flask input
- Fixtures: a10-ssrf.ts (JS), a10-ssrf-vuln.py, a10-ssrf-clean.ts
- Tests updated: all 31 tests passing
- README updated to reflect A10 coverage (7/10 OWASP categories)

Closes #31
Refs #33
@vercel

vercel Bot commented Jun 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
owasp-wtf-web Building Building Preview Jun 6, 2026 5:55pm

Request Review

@github-actions

github-actions Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

🛡️ OWASP.WTF self-scan

Total findings: 0 • Risk score: 100

Severity Count
critical 0
high 0
medium 0
low 0
info 0

Workflow run · Code scanning results

@jeremyjs
jeremyjs merged commit f96f867 into main Jun 7, 2026
7 checks passed
@jeremyjs
jeremyjs deleted the opencode/crisp-canyon branch June 7, 2026 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(rules): add native rule for A10:2021 SSRF — user-controlled URLs in fetch/http/axios/requests

1 participant